package com.ruoyi.management.service;

import com.ruoyi.management.pojo.entity.*;
import com.ruoyi.management.pojo.param.WXLogin;
import com.ruoyi.management.pojo.po.AmmeterResultPo;
import com.ruoyi.management.pojo.vo.*;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Service
public interface WxService {

    Boolean changePassword(WXLogin wxLogin);

    List<BillingVO> selectusergl(String khbh);

    TenantHomeVO selectTenantHome(String khbh);

    //租户月度电量
    BigDecimal monthlyPowerUsage(String dbbh, String month);

    //租户年度电量
    List<YearVO> yearlyPowerUsage(String khbh, String year);

    List<YearVO> monthlyPowerUsage1(String khbh, String month);

    //后付费导航/电费显示(暂无待缴费)
    List<DbkhhsjbVO> selectDbkhhsjb(String khbh);

    //是否收取滞纳金
    List<Qldbykhmxa> payment(String khbh);

    //缴费记录
    Qldbyczmx paymentRecord(String khbh);

    //后付费指标块
    Dbysdbb postpaid(String khbh, String month);

    //预充值指标块
    Dbysdbb prepaid(String khbh, String month);

    //开票数据指标块
    DbkhhsjbVO invoice(String khbh);

    //显示所有已收款但未开票
    List<QldbysjmxVO> invoiceShow(String khbh, Integer year);

    //最新一条开票记录
    Qldbykp selectInvoiceRecord(String khbh);

    //缴费后数据处理
    Boolean payment1(String hkid, BigDecimal zhkje, String khbh, String zjly, String tname, Date sjrq, String remark) throws Exception;

    //用户充值，处理缴费
    Boolean recharge(String khbh, BigDecimal recharge, String tname, String fylx);

    //查询预付费和后付费流水
    List<Qldbyczmx> paymentRecord2(String khbh, String zt, Integer jflx, String fylx, String month, String qymc);

    //查询租户每月已收明细
    List<RechargeRecord> tenantysmx(String khbh, String zt);

    List<Qldbykhmx> postpaid1(String khbh, String zt, Integer status);

    List<DbkhhsjbVO> postpaidShow(String qymc, String bm, Integer dbqx);

    List<Qldbyczmx> paymentRecord111(String khbh, String zt, Integer jflx, String month, String qymc);

    List<QldbysjmxVO> wxmonth(String qymc, String zt, Date date, Integer dbqx);

    /**
     * 获取该客户名下所有电表实时电量累积总和
     *
     * @param khbh 客户编号
     * @return 电表实时电量累积总和
     */
    AmmeterResultPo selectAmmeterResult(String khbh);
}
